/**========================================================================*
 *=========================================================================*
 *
 * @file                Landebahnen.java
 *
 * @copyright           TECCO Software Entwicklung AG
 *
 *=========================================================================*
 *=========================================================================*/


import java.util.*;

import corso.lang.*;


public class Landebahnen implements CorsoShareable
{
    private Vector landebahnenOids;


    /**====================================================================* 
     * constructor: anlegen von neuen Landebahnen und OIDS;
     * inkl. schreiben mit default Wert (= FREI);
     *=====================================================================*/  
    public Landebahnen (int nLandebahnen, CorsoConnection con) 
    {
        landebahnenOids = new Vector (nLandebahnen);
        CorsoVarOid oid;
        try
        {
            for (int i = 0; i < nLandebahnen; i++)
            {
                oid = con.createVarOid (con.getCurrentStrategy ());
                Landebahn landebahn = new Landebahn (CourseUtil.FREI, 
                                                     ""); // keine Flugnr
                oid.writeShareable (landebahn, 
                                    CorsoConnection.INFINITE_TIMEOUT);
                landebahnenOids.add (oid);
            }
        }
        catch (CorsoException eSys1)
        {   
            System.out.println (eSys1);
            System.exit (-1);
        }
    }



    /**====================================================================* 
     * constructor
     *=====================================================================*/  
    public Landebahnen (CorsoVarOid oid)
    {
        System.out.println ("Read LandebahnenOid = " + oid);
        try
        {
            oid.readShareable(this, null, CorsoConnection.INFINITE_TIMEOUT);
        }
        catch (CorsoException e)
        {
            e.printStackTrace();
        }
    }


    //------------------------------------------------------------------------
    // get landebahnen oids
    //------------------------------------------------------------------------
    public Vector getLandebahnenOids ()
    {      
        return (landebahnenOids);
    }  

    //------------------------------------------------------------------------
    // write
    //------------------------------------------------------------------------
    public void write (CorsoData data) throws CorsoDataException
    {
        data.putStructTag ("Landebahnen", landebahnenOids.size ());
        for (int i = 0; i < landebahnenOids.size (); i++)
            data.putShareable ((CorsoVarOid) landebahnenOids.get (i));
    }


    //------------------------------------------------------------------------
    // read
    //------------------------------------------------------------------------
    public void read (CorsoData data) throws CorsoDataException
    {
        StringBuffer structName = new StringBuffer ();
        int arity = data.getStructTag (structName);

        landebahnenOids = new Vector ();
        for (int i = 0; i < arity; i++)
        {
            CorsoVarOid oid = new CorsoVarOid ();
            data.getShareable (oid);
            System.out.println ("Naechste LandebahnOid = " + oid);
            landebahnenOids.add (oid);
        }
    }
}



/**========================================================================*
 *=========================================================================*
 * EOF Landebahnen.java
 *=========================================================================*
 *=========================================================================*/

